package com.xtt.proxyIp;

import java.util.LinkedList;
import java.util.Queue;

public class QueueList<E> {
	private Queue<E> queue = new LinkedList<E>();
	
	/**
	 * 添加队列元素 
	 * 将指定的元素插入此队列（如果立即可行且不会违反容量限制），在成功时返回 true，
	 * 如果当前没有可用的空间，则抛出 IllegalStateException。
	 * @param e 
	 * @return
	 */
	public boolean add(E e) {
		return queue.add(e);
	}
	
	/**
	 * 获取但不移除队列头
	 * @return
	 */
	public E element() {
		return queue.element();
	}
	
	/**
	 * 将指定的元素插入此队列（如果立即可行且不会违反容量限制），当使用有容量限制的队列时，
	 * 此方法通常要优于 add(E)，后者可能无法插入元素，而只是抛出一个异常。
	 * @param e
	 * @return
	 */
	public boolean offer(E e) {
		return queue.offer(e);
	}
	
	/**
	 * 获取但不移除此队列的头；如果此队列为空，则返回 null
	 * @return
	 */
	public E peek() {
		return queue.peek();
	}
	
	/**
	 * 获取并移除此队列的头，如果此队列为空，则返回 null
	 * @return
	 */
	public E poll() {
		return queue.poll();
	}
	
	/**
	 * 获取并移除此队列的头
	 * @return
	 */
	public E remove() {
		return queue.remove();
	}
	
	/**
	 * 判断队列是否为空
	 * @return
	 */
	public boolean isEmpty() {
		return queue.isEmpty();
	}
	
	/**
	 * 清空队列
	 */
	public void clear() {
		queue.clear();
	}
	
	/**
	 * 队列长度
	 * @return
	 */
	public int size() {
		return queue.size();
	}
}
